The present embodiments relate to a rules engine for programming. For large scale software engineering projects, management of software development is an ever increasingly difficult challenge. Making decisions, granting powers, and verifying the quality and performance of multiple areas of the development lifecycle are important. Governance is management of these aspects or the principle processes and practices determining the operations of a system's enterprise environment.
Part of software engineering projects is governance of software architecture. During the realization of a system's architecture, programmers may stray from the intended software architecture. Much management time is dedicated to determining what architectural decisions are made during the design phase of a system's software, and how the decisions may be systematically managed. As the software is created, the implemented architecture may deviate from the designed architecture in undesired manners. Such deviation may be difficult to identify or track.